package com.example.fireassistant_server.service;


import com.example.fireassistant_server.dto.user.*;
import com.example.fireassistant_server.entity.User;
import com.example.fireassistant_server.vo.UserVo;
import org.springframework.data.domain.Page;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;


public interface UserService extends UserDetailsService {

    UserDto create(UserCreateRequest userCreateDto);

    @Override
    User loadUserByUsername(String username);

    User get(String id);

    UserDto update(String id,  UserUpdateRequest userUpdateRequest);

    void delete(String id);

    Page<UserDto> search(UserSearchFilter userSearchFilter);

    String createToken(TokenCreateRequest tokenCreateRequest);

    UserDto getCurrentUser();

    UserDto elevate(String userId);

    List<UserVo> getByCompanyId(String id);
}
